class PreProcessor:
    def __init__(self):
        self.pre_processor_queue = []

    def do(self, input):
        if len(self.pre_processor_queue) == 0: 
            return input
        for processor_item in self.pre_processor_queue:
            output = processor_item[0](input, processor_item[1])
            input = output
        return input
    
    def insert_processor(self, processor, params):
        self.pre_processor_queue.append((processor, params))
